; > SFRs

; SFR memory map

P0      *       &80
SPTR    *       &81
DPL     *       &82
DPH     *       &83
PCON    *       &87
TCON    *       &88
TMOD    *       &89
TL0     *       &8A
TL1     *       &8B
TH0     *       &8C
TH1     *       &8D
P1      *       &90
SCON    *       &98
SBUF    *       &99
P2      *       &A0
IE      *       &A8
P3      *       &B0
IP      *       &B8
PSW     *       &D0
ACC     *       &E0
B       *       &F0

; Addresses in auto-reload mode

Timer0Count * TL0
Timer1Count * TL1
Timer0Latch * TH0
Timer1Latch * TH1

; Bits in PCON (Power Control Register) - Not bit addressable

PCON_BaudNormal * &00   ; Set baud rate to that specified by Timer 1
PCON_BaudDouble * &80   ; Set baud rate to double that spec'd by Timer 1

PCON_GF1        * &08   ; A general purpose flag (but not bit addressable!)
PCON_GF0        * &04   ; A general purpose flag (but not bit addressable!)
PCON_PD         * &02   ; Power-down bit
PCON_IDL        * &01   ; Idle bit

; Bits in TCON (Timer/Counter Control Register)  - Bit addressable

TCON_TF1        * &80   ; Set when Timer 1 overflows
TCON_TR1        * &40   ; When set, Timer 1 is ON
TCON_TF0        * &20   ; Set when Timer 0 overflows
TCON_TR0        * &10   ; When set, Timer 0 is ON
TCON_IE1        * &08   ; Set when external interrupt 1 happens
TCON_IT1        * &04   ; When set, external interrupt 1 is fall edge not level
TCON_IE0        * &02   ; Set when external interrupt 0 happens
TCON_IT0        * &01   ; When set, external interrupt 0 is fall edge not level

; Bits in TMOD (Timer/Counter Mode Control Register) - Not bit addressable

TMOD_T1_NoGate  * &00
TMOD_T1_Gate    * &80

TMOD_T1_Timer   * &00
TMOD_T1_Counter * &40

TMOD_T1_13Bit      * &00
TMOD_T1_16Bit      * &10
TMOD_T1_8BitReload * &20
TMOD_T1_Stopped    * &30

TMOD_T0_NoGate  * &00
TMOD_T0_Gate    * &08

TMOD_T0_Timer   * &00
TMOD_T0_Counter * &04

TMOD_T0_13Bit      * &00
TMOD_T0_16Bit      * &01
TMOD_T0_8BitReload * &02
TMOD_T0_Two8Bit    * &03

; Bits in SCON (Serial Port Control Register) - Bit addressable

SCON_ShiftRegister * &00
SCON_8BitVariable  * &40
SCON_9BitFixed     * &80
SCON_9BitVariable  * &C0

SCON_NoCheck9thBit * &00
SCON_Check9thBit   * &20

SCON_REN        * &10           ; enable reception
SCON_TB8        * &08           ; the 9th bit for transmission
SCON_RB8        * &04           ; reads the 9th bit of reception
SCON_TI         * &02           ; transmit interrupt flag
SCON_RI         * &01           ; receive interrupt flag

; Bits in IE (Interrupt Enable Register) - Bit addressable

IE_EA   *       &80     ; When clear, all interrupts are disabled
IE_ES   *       &10     ; When set, serial interrupts are enabled
IE_ET1  *       &08     ; When set, the Timer 1 interrupt is enabled
IE_EX1  *       &04     ; When set, external interrupt 1 is enabled
IE_ET0  *       &02     ; When set, the Timer 0 interrupt is enabled
IE_EX0  *       &01     ; When set, external interrupt 0 is enabled

; Bits in IP (Interrupt Priority Register) - Bit addressable

IP_PS   *       &10     ; When set, serial interrupts are high priority
IP_PT1  *       &08     ; When set, the Timer 1 interrupt is high priority
IP_PX1  *       &04     ; When set, external interrupt 1 is high priority
IP_PT0  *       &02     ; When set, the Timer 0 interrupt is high priority
IP_PX0  *       &01     ; When set, external interrupt 0 is high priority

        END
